Skip to content
This repository has been archived by the owner on Sep 1, 2020. It is now read-only.

Latest commit

 

History

History
20 lines (16 loc) · 1.33 KB

2.6.15 - onWorkerError.md

File metadata and controls

20 lines (16 loc) · 1.33 KB

onWorkerError

Worker/Task进程发生异常后会在Manager进程内回调此函数。

void onWorkerError(swoole_server $serv, int $worker_id, int $worker_pid, int $exit_code, int $signal);
  • $worker_id 是异常进程的编号
  • $worker_pid 是异常进程的ID
  • $exit_code 退出的状态码,范围是 0~255
  • $signal 进程退出的信号

此函数主要用于报警和监控,一旦发现Worker进程异常退出,那么很有可能是遇到了致命错误或者进程CoreDump。通过记录日志或者发送报警的信息来提示开发者进行相应的处理。

常见错误

  • signal = 11:说明Worker进程发生了segment fault段错误,可能触发了底层的BUG,请收集core dump信息和valgrind内存检测日志,向我们反馈此问题
  • exit_code = 255:说明Worker进程发生了Fatal Error致命错误,请检查PHP的错误日志,找到存在问题的PHP代码,进行解决
  • signal = 9:说明Worker被系统强行Kill,请检查是否有人为的kill -9操作,检查dmesg信息中是否存在OOMOut of memory
  • 如果存在OOM,分配了过大的内存。检查Serversetting配置,是否创建了非常大的Swoole\TableSwoole\Buffer等内存模块